const express = require('express');
const cors = require('cors');
const dotenv = require('dotenv');
const apiRoutes = require('./routes/apiRoutes');

// 加载环境变量
dotenv.config();

// 创建Express应用
const app = express();

// 中间件
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// 静态文件服务（可选）
app.use(express.static('public'));

// 注册API路由
app.use('/api', apiRoutes);

// 根路径路由
app.get('/', (req, res) => {
  res.json({
    message: '欢迎使用Tripo3D API集成服务',
    endpoints: {
      generateFromUrl: '/api/generate-from-url',
      generateFromUpload: '/api/generate-from-upload',
      taskStatus: '/api/task-status/:taskId',
      downloadModel: '/api/download-model/:modelId',
      health: '/api/health'
    },
    documentation: '/api-docs' // 如果添加了Swagger文档
  });
});

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error('未处理的错误:', err);
  res.status(500).json({
    success: false,
    error: '服务器内部错误',
    message: process.env.NODE_ENV === 'development' ? err.message : undefined
  });
});

// 404处理中间件
app.use((req, res) => {
  res.status(404).json({
    success: false,
    error: 'API端点不存在'
  });
});

module.exports = app;